const CompressionPlugin = require('compression-webpack-plugin')
const path = require('path')

function resolve(dire) {
  return path.join(__dirname, dire)
}

const isProd = process.env.NODE_ENV === 'production'

module.exports = {
  lintOnSave: false,
  publicPath: './',
  // devServer: {
  //   hot: true,
  //   hotModuleReplacement: {
  //     reload: true,
  //     force: true,
  //     log: true,
  //   },
  // },
  chainWebpack: (config) => {
    config.module.rule('svg').exclude.add(resolve('src/icons')).end()
    config.module
      .rule('icons')
      .test(/\.svg$/)
      .include.add(resolve('src/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]',
      })
      .end()
  },
  configureWebpack: () => {
    if (isProd) {
      return {
        plugins: [
          new CompressionPlugin({
            test: /\.js$|\.html$|\.css$|\.jpg$|\.jpeg$|\.png/, // 需要压缩的文件类型
            threshold: 10240, // 归档需要进行压缩的文件大小最小值，这个对 10K 以上的进行压缩
            deleteOriginalAssets: false, // 是否删除原文件
          }),
        ],
      }
    }
  },
}
